﻿/*
 * Script: "geolocalizacion_consultar_modulo.js"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podrá utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */
 
 
// Inicialización de Variables

var map				= null;
var markers			= null;
var infoBubbleTurno = null;

// Variables donde se guardan los datos de los Modulos Policiales a mostrar
var lista_id_modulo 		= null;
var lista_coord_x 			= null;
var lista_coord_y 			= null;
var lista_nombre 			= null;
var lista_direccion 		= null;
var lista_referencia 		= null;


// =================================================================================================================
// ============================ MAPA DE GEOLOCALIZACION - CONSULTAR MODULOS POLICIALES =============================
// =================================================================================================================

function geolocalizacion_consultar_modulo() {
	
	// Inicializamos los Datos de los Resultados a mostrar
	inicializar_datos();
	
	// Creamos el Mapa
	var centerPoint = new google.maps.LatLng( parseFloat(mapa_coord_x).toFixed(8), parseFloat(mapa_coord_y).toFixed(8) );
	var myOptions = {
		zoom: parseInt(mapa_zoom),
		zoomControlOptions: {
      		style: google.maps.ZoomControlStyle.LARGE
    	},
		center: centerPoint,
		panControl: true,
		mapTypeControl: false,
		scaleControl: true,
		streetViewControl: false,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	map = new google.maps.Map(document.getElementById("map"), myOptions);
	
	// Inicializamos y Seteamos las Variables de los Marcadores
	pintar_resultados();
}


// =================================================================================================================
// ========================================= INICALIZAR LOS DATOS DEL MAPA =========================================
// =================================================================================================================

function inicializar_datos() {
	var coord_x 				= document.getElementById("h_coord_x_centro").value;
	var coord_y 				= document.getElementById("h_coord_y_centro").value;
	var zoom 					= document.getElementById("h_zoom_centro").value;
	
	var h_ls_id_modulo 			= document.getElementById("h_ls_id_modulo").value;
	lista_id_modulo 			= h_ls_id_modulo.split( "/*" );
	
	var h_ls_coord_x 			= document.getElementById("h_ls_coord_x").value;
	lista_coord_x 				= h_ls_coord_x.split( "/*" );
	
	var h_ls_coord_y 			= document.getElementById("h_ls_coord_y").value;
	lista_coord_y 				= h_ls_coord_y.split( "/*" );
	
	var h_ls_nombre 			= document.getElementById("h_ls_nombre").value;
	lista_nombre 				= h_ls_nombre.split( "/*" );
	
	var h_ls_direccion 			= document.getElementById("h_ls_direccion").value;
	lista_direccion 			= h_ls_direccion.split( "/*" );
	
	var h_ls_referencia 		= document.getElementById("h_ls_referencia").value;
	lista_referencia 			= h_ls_referencia.split( "/*" );
}
		

// =================================================================================================================
// =================================== PINTA LOS MODULOS POLICIALES EN EL MAPA =====================================
// =================================================================================================================

function pintar_resultados() {
	var infowindow_div_modulo 			= document.getElementById('infowindow_div_modulo').innerHTML;
	
	// Arreglo donde se dejan los Marcadores para ser pasados a la Funcion de Cluster
	markers = [];
	
	for ( var j = 0; j < lista_id_modulo.length-1; j++ ) {
		// Obtenemos los atributos de cada Marcador
		var point 		= new google.maps.LatLng( parseFloat(lista_coord_x[j]).toFixed(8), parseFloat(lista_coord_y[j]).toFixed(8) );
		
		var icono_marker = "../../publico/imagenes/mapa/policia.gif";
		var image = new google.maps.MarkerImage( icono_marker,
			new google.maps.Size( 25, 25 ),
			new google.maps.Point( 0, 0 ),
			new google.maps.Point( 12.5, 12.5 ));
		
		// Llenamos la Informacion del InfoWindow
		// Si el Tab es Modulo
		html_tab1 	= infowindow_div_modulo;
		html_tab1	= html_tab1.replace("%%element.id_modulo%%",			lista_id_modulo[j]);
		
		html_tab1 	= html_tab1.replace("%%element.nombre%%",				lista_nombre[j]);
		html_tab1 	= html_tab1.replace("%%element.direccion%%",			lista_direccion[j]);
		
		if ( lista_referencia[j] != "" ) {
			html_tab1 	= html_tab1.replace("%%element.referencia%%",			lista_referencia[j]);
		} else {
			html_tab1 	= html_tab1.replace('<tr><td class="titulo_info_tab" colspan="2">Referencia:</td></tr><tr><td colspan="2" class="text_justify">%%element.referencia%%</td></tr>',			"");
		}
		
		// Configuramos el infoBubble
		infoBubble = new InfoBubble({
			maxWidth: 300,
			minWidth: 300,
			maxHeight: 200,
			minHeight: 200,
			map: map,
			shadowStyle: 1,
			padding: 5,
			backgroundColor: '#FFFFFF',
			borderRadius: 15,
			arrowSize: 20,
			borderWidth: 2,
			borderColor: color_menu,
			disableAutoPan: false,
			hideCloseButton: false,
			arrowPosition: 50,
			arrowStyle: 0
		});
		
		// Agregamos los Tabs al infoBubble
		infoBubble.addTab('Modulo', 			html_tab1);
		
		// Creamos el Marcador
		var marker = new google.maps.Marker({
			position: point,
			map: map,
			title: lista_nombre[j],
			icon: image,
			infoBubblez: infoBubble
		});
		
		// Creamos el Evento
		google.maps.event.addListener(marker, "click", function () {
			if (!(this.infoBubblez).isOpen()) {
				if ( infoBubbleTurno != null ) {
					infoBubbleTurno.close();	
				}
				(this.infoBubblez).open(map, this);
				infoBubbleTurno = this.infoBubblez;
			}
		});
		
		// Agregamos el Marcador al Arreglo
		markers.push(marker);
	}
}